{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 第四章 查询扩展 Query Expansion"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 目录\n",
    "- [4.1 - Expansion with generator answers（生成器答案扩展）](#41-expansion-with-generator-answers生成器答案扩展)\n",
    "- [4.2 - Expansion with multiple queries（多个查询的查询扩展）](#42-expansion-with-multiple-queries多个查询的查询扩展)\n",
    "- [4.3 - 总结](#43-总结)\n",
    "\n",
    "我们将通过Expansion with generator answers和Expansion with multiple queries两个例子，学习使用查询增强的方法，来帮助我们改善查询的质量，提供更加精确和丰富的信息。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4.1  Expansion with generator answers（生成器答案扩展）\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![Expansion with generated answers.png](./images/Expansion%20with%20generated%20answers.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "我们通过图片了解 Expansion with generator answers 的工作原理：\n",
    "\n",
    "第一步，我们需要先提出一个查询。\n",
    "\n",
    "第二步，使用LLM生成问题的答案，以提供相关上下文。\n",
    "\n",
    "第三步，利用向量数据库（VectorDB）检索原始查询的多个结果，包含附加的上下文。\n",
    "\n",
    "第四步，再次使用LLM得到最终答案。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "让我们开始进行实践。\n",
    "\n",
    "首先，我们导入要用到的数据。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1028"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from helper_utils import load_chroma, word_wrap, project_embeddings\n",
    "from chromadb.utils.embedding_functions import SentenceTransformerEmbeddingFunction\n",
    "\n",
    "embedding_function = SentenceTransformerEmbeddingFunction()\n",
    "\n",
    "chroma_collection = load_chroma(filename='./data/2024年北京市政府工作报告.pdf', \\\n",
    "                                collection_name='beijing_annual_report_2024', \\\n",
    "                                embedding_function=embedding_function,\n",
    "                                langcode='zh')  # 注意中文文档将langcode改为'zh'\n",
    "chroma_collection.count()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "配置`OPENAI_API_KEY`(在`.env`文件中进行设置)。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import openai\n",
    "from openai import OpenAI\n",
    "\n",
    "from dotenv import load_dotenv, find_dotenv\n",
    "_ = load_dotenv(find_dotenv()) \n",
    "openai.api_key = os.environ['OPENAI_API_KEY']\n",
    "\n",
    "openai_client = OpenAI()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "使用`umap`进行投影数据。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\Anaconda3\\Lib\\site-packages\\umap\\distances.py:1063: NumbaDeprecationWarning: \u001b[1mThe 'nopython' keyword argument was not supplied to the 'numba.jit' decorator. The implicit default value for this argument is currently False, but it will be changed to True in Numba 0.59.0. See https://numba.readthedocs.io/en/stable/reference/deprecation.html#deprecation-of-object-mode-fall-back-behaviour-when-using-jit for details.\u001b[0m\n",
      "  @numba.jit()\n",
      "D:\\Anaconda3\\Lib\\site-packages\\umap\\distances.py:1071: NumbaDeprecationWarning: \u001b[1mThe 'nopython' keyword argument was not supplied to the 'numba.jit' decorator. The implicit default value for this argument is currently False, but it will be changed to True in Numba 0.59.0. See https://numba.readthedocs.io/en/stable/reference/deprecation.html#deprecation-of-object-mode-fall-back-behaviour-when-using-jit for details.\u001b[0m\n",
      "  @numba.jit()\n",
      "D:\\Anaconda3\\Lib\\site-packages\\umap\\distances.py:1086: NumbaDeprecationWarning: \u001b[1mThe 'nopython' keyword argument was not supplied to the 'numba.jit' decorator. The implicit default value for this argument is currently False, but it will be changed to True in Numba 0.59.0. See https://numba.readthedocs.io/en/stable/reference/deprecation.html#deprecation-of-object-mode-fall-back-behaviour-when-using-jit for details.\u001b[0m\n",
      "  @numba.jit()\n",
      "D:\\Anaconda3\\Lib\\site-packages\\umap\\umap_.py:660: NumbaDeprecationWarning: \u001b[1mThe 'nopython' keyword argument was not supplied to the 'numba.jit' decorator. The implicit default value for this argument is currently False, but it will be changed to True in Numba 0.59.0. See https://numba.readthedocs.io/en/stable/reference/deprecation.html#deprecation-of-object-mode-fall-back-behaviour-when-using-jit for details.\u001b[0m\n",
      "  @numba.jit()\n",
      "100%|██████████| 1028/1028 [10:03<00:00,  1.70it/s]\n"
     ]
    }
   ],
   "source": [
    "import umap.umap_ as umap\n",
    "\n",
    "embeddings = chroma_collection.get(include=['embeddings'])['embeddings']\n",
    "umap_transform = umap.UMAP(random_state=0, transform_seed=0).fit(embeddings)\n",
    "projected_dataset_embeddings = project_embeddings(embeddings, umap_transform)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "参考paper https://arxiv.org/abs/2305.03653"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "我们创建名为`augment`的函数，进行生成查询，并传递一个查询，传入模型参数（默认使用`gpt-3.5-turbo`）。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def augment_query_generated(query, model=\"gpt-3.5-turbo\"):\n",
    "    messages = [\n",
    "        {\n",
    "            \"role\": \"system\",\n",
    "            # 设定一个对话场景，模型被告知扮演一个专业的财经研究助理。\n",
    "            \"content\": \"You are a helpful expert financial research assistant. Provide an example answer to the given question, that might be found in a document like an annual report. \" # 系统提示\n",
    "        },\n",
    "        {\"role\": \"user\", \"content\": query} # 通过查询作为内容\n",
    "    ] \n",
    "    \n",
    "    # 定义如何提示模型\n",
    "    response = openai_client.chat.completions.create(\n",
    "        model=model,\n",
    "        messages=messages,\n",
    "    )\n",
    "    content = response.choices[0].message.content\n",
    "    return content"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "进行第一次查询。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "推动北京财政收入增长的因素是什么? 北京的财政收入增长是受多种因素影响的。一些推动北京财政收入增长的因素包括：\n",
      "\n",
      "1.\n",
      "市场经济发展：随着北京市经济的发展壮大，市场规模扩大，企业盈利增加，从而带动财政收入的增长。\n",
      "\n",
      "2.\n",
      "投资增加：政府通过引导各种投资，加大基础设施、科技创新等领域的投入，刺激经济增长，促进财政收入的增长。\n",
      "\n",
      "3.\n",
      "政府政策支持：政府制定各种支持企业和居民发展的政策，如减税降费政策和扶持实体经济的政策等，从而促进经济活力，增加财政收入。\n",
      "\n",
      "4.\n",
      "增值税和消费税收入：随着人们消费水平的提高和经济结构的调整，增值税和消费税收入也会相应增加。\n",
      "\n",
      "5.\n",
      "土地出让收入：通过土地出让和房地产交易，政府可以获取土地增值税、契税等收入，为财政收入增长提供了一定的支撑。\n",
      "\n",
      "总的来说，北京财政收入增长的因素\n",
      "仅包括经济发展的动力，也涉及到政府政策支持、税收收入增加等多个方面的综合影响。\n"
     ]
    }
   ],
   "source": [
    "original_query = \"推动北京财政收入增长的因素是什么?\"\n",
    "# 生成假设答案\n",
    "hypothetical_answer = augment_query_generated(original_query)\n",
    "# 联合查询\n",
    "joint_query = f\"{original_query} {hypothetical_answer}\"\n",
    "print(word_wrap(joint_query))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "发送一个查询和假设作为查询响应我们的检索系统。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "我们接下来使用Chroma进行查询。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "努力建设人民满意的法治政府、创新政府、廉洁政府和服务型政府\n",
      "\n",
      "加快在政务、医疗、教育、工业、\n",
      "生活服务等领域应用\n",
      "\n",
      "更好发挥积极财政政策作用\n",
      "\n",
      "纵深推进政府系统全面从严治\n",
      "党\n",
      "\n",
      "完善疏解激励约束政策体系\n",
      "\n"
     ]
    }
   ],
   "source": [
    "results = chroma_collection.query(query_texts=joint_query, n_results=5, include=['documents', 'embeddings'])\n",
    "retrieved_documents = results['documents'][0]\n",
    "\n",
    "for doc in retrieved_documents:\n",
    "    print(word_wrap(doc))\n",
    "    print('')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "将查询结果集的嵌入，原始检索的嵌入，联合查询的嵌入进行投影。\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1/1 [00:00<00:00,  1.55it/s]\n",
      "100%|██████████| 1/1 [00:00<00:00,  1.73it/s]\n",
      "100%|██████████| 5/5 [00:02<00:00,  1.67it/s]\n"
     ]
    }
   ],
   "source": [
    "retrieved_embeddings = results['embeddings'][0]\n",
    "original_query_embedding = embedding_function([original_query])\n",
    "augmented_query_embedding = embedding_function([joint_query])\n",
    "\n",
    "projected_original_query_embedding = project_embeddings(original_query_embedding, umap_transform)\n",
    "projected_augmented_query_embedding = project_embeddings(augmented_query_embedding, umap_transform)\n",
    "projected_retrieved_embeddings = project_embeddings(retrieved_embeddings, umap_transform)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "进行可视化。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(-4.898337054252624, 6.464729475975036, 3.1551185965538027, 12.484500992298127)"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgMAAAGaCAYAAACSWkBBAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB/aklEQVR4nO2deXxU1d3/P1lAlrAmRMwMoiTRUE2CwQY1NClCFGtTAVuXgksbad3q2tpatKjVaher6OP2YBR/otVqERttxaiUiFGQDCTRRphEUG8CBAIEJKyT8/sjzx3v3DnnbnPvzJ2Z7/v1ygty58695y4553O+20lhjDEQBEEQBJG0pMa6AQRBEARBxBYSAwRBEASR5JAYIAiCIIgkh8QAQRAEQSQ5JAYIgiAIIskhMUAQBEEQSQ6JAYIgCIJIckgMEHHPp59+ikAgEOtmBOnr64t1Ewyxb98+9Pb2hmw7cOAAOjs7Q7b19fXhs88+i2bTCIKIMiQGkogHHngA//M//xOyrbu7Gz/+8Y+xdetWbNy4EXfeeSes1KGSJAl33XUXenp6DO3/6quv4je/+U3Itrlz5+K9994zdd6uri6cfvrpePjhh019zwg+nw//+7//a+o7mzZtwrHHHmt48DzzzDPx8ssvB3+/9dZbMW/ePFPnbGlpwbPPPmvqOwDwk5/8BPfcc0/Itj/96U84//zzceDAgeC2RYsWYcqUKdi5c2fYMXp6enDGGWfg448/1jzX/v37cfjwYe5n7777LubOnRtyTplLLrkEr7zyipHLsZ2bb74ZL730kuH9JUky/CP6G6utrcV1112HQ4cOhWzfsWMHpk6dinXr1pm6hp6eHrz66qtxI1CJGMKIpGHu3LnsuuuuC9l25513sjPPPJP19fWxzs5ONmbMGLZgwYKQffbt28daW1u5PwcOHGCMMdbQ0MAAsK+++spQWxYuXMiKi4tDto0YMYI9++yzpq/rN7/5DfN4PMG2iHj22WcZgLCf8ePHc/d/4okn2CmnnBL8ffPmzey6664T/rz55pvs5ptvZqeccgrr6+sz1Pbc3NzgNff19bFx48axBx980NB3ZZ5//nk2YMAA09+78MIL2a9//euQbb29veyUU05hL7/8MmOMsc8//5wNHTqU/e1vf+MeY8eOHQwAq6urE57ngw8+YLm5ueyWW27hfj5v3jw2derUsO3//e9/GQD273//W3jsiooK7jPV+2ltbWWMMbZ48WJL3wfANm/eHNIWM9/dvXs393q+//3vszPOOCNs+1dffaV7n3lcddVVbMCAAcHrJQgRZBlIYnbs2IFFixbhsssuw5o1a/DFF1/gxhtvRF9fHz766KPgzxtvvIGJEydyfzZs2AAAwZlOenq6I2397ne/i5SUFO7PAw88gI6ODgwePFi4zyeffAIAOOWUU9Da2hr8eeKJJyy3ad26daitrQ3+fuDAASxZsgS33norUlJSuN/ZunUrzjjjDOzYsSPss7fffhtdXV244oorTLVj3rx5WLJkCW677TY0NDSYu4j/47333sOAAQMwatQo+P1+XH755RgwYABOPvlkHDp0CFdeeSWOOeYYXHDBBYaPuXPnTlxzzTX4zne+g9zcXNx8880hn0uShE8++QT/+Mc/8IMf/ABtbW1oa2sLWpeWLFmC4cOHY8yYMdiwYUPIj3Km+5Of/CTkmba2tsLn8+Gjjz4K275ixYqQNvzkJz/BgQMHuD9FRUVYsGCB8PPx48eHXfP7778Pxpjwp6WlRfN+vf322/jZz35m+B5r8d577+Hpp5/G7bffjoKCAt39n3/+eZSVlWHkyJEYM2YMLrjgArS2ttrSFsL9ONNzE67iyiuvxHPPPRf8/bHHHsP999+PL7/8EmlpaXjwwQcBAIFAAFu2bMH48ePx97//Pbj/22+/LTRrbt26FZ999hm2bNkCAPj888+xZ8+e4OdjxoxBZmampXbv3r0by5YtQ3V1NV544QWuGdkoxx9/PNatW4dBgwahoKAA7733Hk499VR4vV4A/ebUrVu3hnxn+/btOHz4MD777DOkp6cjLy8vxM1y7733YvXq1cFtd999N3bv3o2f/vSn+OlPfxrWhvvvvx+XXHIJ1qxZE2YGBoDHH38chw4dQlZWFvcajj32WGzbto372Y9//GO88847uPrqq+Hz+UyLsr6+Png8HmzZsgU7d+5EVlYWTjjhBCxZsgSnn346Dh06hOeffx7vvPOO7rF2796NRx55BA8//DAGDx6MZ599FpdffnnYfrNmzUJjYyMA4LbbbsNtt90GAHj00Udx1VVXYcmSJdi7dy9OP/30sO9+/fXXGDp0KABg9OjRYYPdvffei7feegurV68O2a6+L2lpaUhNTeXGnKSkpCA1NZV7L0X3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efPYoEGD2IoVK7jHnDx5ckhqK2P9KZ+PPvood3/G+itmFhYWBn+XUwv37t3LFixYwNLT09n8+fNDvvPUU0+x1NRUdsstt7CNGzeGpRZef/31IdUoi4uL2YQJE1h2djbLyMhgw4cPZx6Ph5188sls8uTJbPjw4ezSSy9lgUAg5DzTp09n11xzTci23NxcYXri+++/H7LvddddZ0tqIWOMXX311Sw1NZW99tprYZ9dc801bNiwYWzLli2GjkUkB2QZSHKGDx8Or9cLr9cbjDIeO3ZscFtOTg5+9atf4eDBg6isrERLSwtWrFiBY489Fq+99hp27NiBP/7xjzj11FNRXFwcPO6+ffsAAEOHDsW2bdvw4IMP4vTTT8epp56KNWvWhOyrRUdHR4iZ/Y033sCkSZPw+uuvc03gPT09eOKJJzBx4sSwev0ejwdnnnkm/v73v+O0005DTU0N7rzzTqSlpeGZZ57BU089hQsvvFC3TYFAAJ9++ik2btyITz/9FOeeey6OPfZY3HPPPQgEAqipqUFaWho2btwYLOgkc+GFF+Lqq69Gc3Mzzj777LBjHz58GJ9//jmAfvOvKNBu165d+MEPfoBAIIDa2lqu6fySSy7BvHnzcMstt+CFF14Ibm9pacFDDz0En8+HJ598Eg888EDQYvHXv/6Va9rXS2uU2bZtGxYuXIhPP/0UTz/9NKZNm4bzzjsPN910U9iiSFbYv38/t2DOlVdeicceewyPPvpo2HoSP/vZz/D//t//w2effcZNB7ztttuwdOlSvP7663jggQfwyiuv4IMPPsDFF1+MsrIy9PT0YNWqVXj++eexbt06vP322/j2t78dYrFZv3493n33XdTX14ed46677sJXX30V9lNaWhrx/eBx++2348knn8STTz6JWbNmhX3+wAMPYPjw4aiurg5LL25qakJmZqZu0CuRgMRajRDRg2cZ+NWvfhUsiNLc3MwAMJ/PF1IoJT8/P2RGM3ToUJafn8+GDBnCrrjiCpaSksJeeeWVkHPJxV2am5vZv//9bzZ69Gh20003sU8//ZQxxl+bYMKECezqq69mhw8fZn19fey9995jANi//vUvtnPnTnb55ZezlJQU9otf/CJkJqy2DBw+fJgtXLiQDRgwgE2fPp21t7cHP2tsbGSDBw9m//nPf9g777zD0tPT2eOPP861JDz22GPs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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "\n",
    "plt.figure()\n",
    "plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']  # 设置全局字体为微软雅黑，显示中文\n",
    "plt.scatter(projected_dataset_embeddings[:, 0], projected_dataset_embeddings[:, 1], s=10, color='gray')\n",
    "plt.scatter(projected_retrieved_embeddings[:, 0], projected_retrieved_embeddings[:, 1], s=100, facecolors='none', edgecolors='g')\n",
    "plt.scatter(projected_original_query_embedding[:, 0], projected_original_query_embedding[:, 1], s=150, marker='X', color='r')\n",
    "plt.scatter(projected_augmented_query_embedding[:, 0], projected_augmented_query_embedding[:, 1], s=150, marker='X', color='orange')\n",
    "\n",
    "plt.gca().set_aspect('equal', 'datalim')\n",
    "plt.title(f'{original_query}')\n",
    "plt.axis('off')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "我们可以看到红色的`X`是我们的原始查询，橙色的`X`是我们带有假设答案的查询，绿色的圆圈是我们检索到的查询，可以看出，进行联合查询提高了我们的查询结果。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4.2 Expansion with multiple queries（多个查询的查询扩展）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![Expansion with multiple queries.png](./images/Expansion%20with%20multiple%20queries.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "我们通过图片了解 Expansion with multiple queries 的工作原理：\n",
    "\n",
    "第一步，我们需要发起一个查询。\n",
    "\n",
    "第二步，使用大型语言模型（LLM）来生成额外的查询。\n",
    "\n",
    "第三步，这些新生成的查询被发送到向量数据库（VectorDB）。\n",
    "\n",
    "第四步，向量数据库检索与原始查询和新查询都相关的结果。\n",
    "\n",
    "第五步，所有的查询结果被发送回LLM。\n",
    "\n",
    "第六步，LLM基于所有检索到的信息提供最终的答案。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "与上一个方法相同（需要增加更多的系统提示）。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "def augment_multiple_query(query, model=\"gpt-3.5-turbo\"):\n",
    "    messages = [\n",
    "        {\n",
    "            \"role\": \"system\",\n",
    "            # 为模型提供指令，告诉它扮演一个有用的财经研究助理。\n",
    "            # 指令包括基于提供的查询生成最多五个相关的额外查询问题。\n",
    "            # 提示模型生成的问题应该简短，不包含复合句，并涵盖主题的不同方面。\n",
    "            # 要确保问题是完整的，并且与原始查询相关联。\n",
    "            # 输出格式为每行一个问题，不要对问题编号。\n",
    "            \"content\": \"You are a helpful expert financial research assistant. Your users are asking questions about an annual report. \"\n",
    "            \"Suggest up to five additional related questions to help them find the information they need, for the provided question. \"\n",
    "            \"Suggest only short questions without compound sentences. Suggest a variety of questions that cover different aspects of the topic.\"\n",
    "            \"Make sure they are complete questions, and that they are related to the original question.\"\n",
    "            \"Output one question per line. Do not number the questions.\"\n",
    "        },\n",
    "        {\"role\": \"user\", \"content\": query}\n",
    "    ]\n",
    "\n",
    "    response = openai_client.chat.completions.create(\n",
    "        model=model,\n",
    "        messages=messages,\n",
    "    )\n",
    "    content = response.choices[0].message.content\n",
    "    content = content.split(\"\\n\")\n",
    "    return content"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "第一次查询。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "- 北京财政支出的主要方向是什么?\n",
      "- 北京财政预算中的重点支出项目有哪些?\n",
      "- 北京财政收入中税收所占比例如何?\n",
      "- 北京财政资金运用方面有哪些重点举措?\n",
      "- 北京市的财政政策对经济发展有何影响?\n"
     ]
    }
   ],
   "source": [
    "original_query = \"推动北京财政收入增长的因素是什么?\"\n",
    "augmented_queries = augment_multiple_query(original_query)\n",
    "\n",
    "for query in augmented_queries:\n",
    "    print(query)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "我们可以看到LLM生成的其他增强查询问题。\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "接下来，我们进行构建查询集，使用Chroma并行处理多个查询（原始查询加增强查询）并打印了每个查询及其检索到的文档。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Query: 推动北京财政收入增长的因素是什么?\n",
      "\n",
      "Results:\n",
      "用好“京策”平台向企业精准提供政策服务\n",
      "\n",
      "是中共北京市委带领全市人民攻坚克难、艰苦奋斗的结果\n",
      "\n",
      "优\n",
      "化提升中央政务环境和城市发展品质\n",
      "\n",
      "严格落实政府系统\n",
      "机构改革任务\n",
      "\n",
      "完善疏解激励约束政策体系\n",
      "\n",
      "----------------------------------------------------------------------------------------------------\n",
      "Query: - 北京财政支出的主要方向是什么?\n",
      "\n",
      "Results:\n",
      "是中共北京市委带领全市人民攻坚克难、艰苦奋斗的结果\n",
      "\n",
      "压茬推出新的试点政\n",
      "策\n",
      "\n",
      "用好“京策”平台向企业精准提供政策服务\n",
      "\n",
      "制定实施“北京服务”意见和促进民营经济发展壮大行动方案\n",
      "\n",
      "完成全国首例地方政府专项债券提前偿还试点\n",
      "\n",
      "----------------------------------------------------------------------------------------------------\n",
      "Query: - 北京财政预算中的重点支出项目有哪些?\n",
      "\n",
      "Results:\n",
      "出台普惠托育政策\n",
      "\n",
      "是中共北京市委带领全市人民攻坚克难、艰苦奋斗的结果\n",
      "\n",
      "并请市政协委员提出\n",
      "意见\n",
      "\n",
      "压茬推出新的试点政\n",
      "策\n",
      "\n",
      "促进北京普惠健\n",
      "康保可持续发展\n",
      "\n",
      "----------------------------------------------------------------------------------------------------\n",
      "Query: - 北京财政收入中税收所占比例如何?\n",
      "\n",
      "Results:\n",
      "是中共北京市委带领全市人民攻坚克难、艰苦奋斗的结果\n",
      "\n",
      "优\n",
      "化提升中央政务环境和城市发展品质\n",
      "\n",
      "用好“京策”平台向企业精准提供政策服务\n",
      "\n",
      "北京成为国家首批制度型开放试点\n",
      "\n",
      "制定实施“北京服务”意见和促进民营经济发展壮大行动方案\n",
      "\n",
      "----------------------------------------------------------------------------------------------------\n",
      "Query: - 北京财政资金运用方面有哪些重点举措?\n",
      "\n",
      "Results:\n",
      "统筹用好政府投资基金\n",
      "\n",
      "切实提高财政金融服务效能\n",
      "\n",
      "新设4支政府高精尖产业基金\n",
      "\n",
      "全面构建亲清政商关系\n",
      "\n",
      "积极争取国债资金支持\n",
      "\n",
      "----------------------------------------------------------------------------------------------------\n",
      "Query: - 北京市的财政政策对经济发展有何影响?\n",
      "\n",
      "Results:\n",
      "更好发挥积极财政政策作用\n",
      "\n",
      "用好“京策”平台向企业精准提供政策服务\n",
      "\n",
      "落实积极就业政策\n",
      "\n",
      "优化调整购房政策\n",
      "\n",
      "完善疏解激励约束政策体系\n",
      "\n",
      "----------------------------------------------------------------------------------------------------\n"
     ]
    }
   ],
   "source": [
    "queries = [original_query] + augmented_queries\n",
    "results = chroma_collection.query(query_texts=queries, n_results=5, include=['documents', 'embeddings'])\n",
    "\n",
    "retrieved_documents = results['documents']\n",
    "\n",
    "# 对检索到的文档进行重复数据删除\n",
    "unique_documents = set()\n",
    "for documents in retrieved_documents:\n",
    "    for document in documents:\n",
    "        unique_documents.add(document)\n",
    "\n",
    "for i, documents in enumerate(retrieved_documents):\n",
    "    print(f\"Query: {queries[i]}\")\n",
    "    print('')\n",
    "    print(\"Results:\")\n",
    "    for doc in documents:\n",
    "        print(word_wrap(doc))\n",
    "        print('')\n",
    "    print('-'*100)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "计算原始查询和增强查询的嵌入，然后使用`umap`将这些嵌入进行绘制投影。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "  0%|          | 0/1 [00:00<?, ?it/s]"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1/1 [00:00<00:00,  1.59it/s]\n",
      "100%|██████████| 5/5 [00:03<00:00,  1.54it/s]\n"
     ]
    }
   ],
   "source": [
    "original_query_embedding = embedding_function([original_query])\n",
    "augmented_query_embeddings = embedding_function(augmented_queries)\n",
    "\n",
    "project_original_query = project_embeddings(original_query_embedding, umap_transform)\n",
    "project_augmented_queries = project_embeddings(augmented_query_embeddings, umap_transform)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "从查询结果中提取嵌入向量，使用`umap`将这些嵌入进行绘制投影。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 30/30 [00:17<00:00,  1.74it/s]\n"
     ]
    }
   ],
   "source": [
    "result_embeddings = results['embeddings']\n",
    "result_embeddings = [item for sublist in result_embeddings for item in sublist]\n",
    "projected_result_embeddings = project_embeddings(result_embeddings, umap_transform)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "进行数据可视化。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(-4.898337054252624, 6.464729475975036, 3.1551185965538027, 12.484500992298127)"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgMAAAGaCAYAAACSWkBBAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAACSx0lEQVR4nO2deVzUdf7HX8OhoCgKiMqMohyFGWBYaGGQKZbbUh67m5t2kmXHdh/b2n1stdvldtkaZT+zssNj6TApDTRKk0GgIgW0dEDlUkS5ZObz+2P6jnN8z5nv3O9nDx7J9/x8D76f1+d9fTSMMQaCIAiCIIKWEG83gCAIgiAI70JigCAIgiCCHBIDBEEQBBHkkBggCIIgiCCHxABBEARBBDkkBgiCIAgiyCExQBAEQRBBDokBwu/56aefYDQavd0MCyaTydtNkEVnZye6urpslnV3d6Opqclmmclkwi+//OLJphEE4WFIDAQRzzzzDF555RWbZW1tbbjiiitw8OBB7N69Gw899BCcqUNlMBjw6KOPoqOjQ9b2H3/8Mf7+97/bLFu4cCE2b96s6LzNzc04++yz8dJLLynaTw56vR7//e9/Fe2zZ88ejBw5Unbnee6552LNmjWW3++++24sWrRI0Tlramrw9ttvK9oHAK699lo8/vjjNsv+9a9/4ZJLLkF3d7dl2bJlyzBlyhS0trY6HKOjowNTp07FDz/8IHquEydOoK+vj3fd119/jYULF9qck2PBggX46KOP5FyO6tx555344IMPZG9vMBhk/wj9jRUXF+OWW25Bb2+vzfKWlhZMmzYNO3fuVHQNHR0d+Pjjj/1GoBJehBFBw8KFC9ktt9xis+yhhx5i5557LjOZTKypqYmNGDGCLV261Gabzs5OVltby/vT3d3NGGOsvLycAWAHDhyQ1ZZHHnmEZWZm2iyLjo5mb7/9tuLr+vvf/860Wq2lLUK8/fbbDIDDT2JiIu/2r7/+Ops4caLl93379rFbbrlF8Oezzz5jd955J5s4cSIzmUyy2p6cnGy5ZpPJxMaMGcOef/55WftyrFq1ioWHhyveb/78+ez++++3WdbV1cUmTpzI1qxZwxhjbO/evWzw4MHs/fff5z1GS0sLA8BKSkoEz/Ptt9+y5ORkdtddd/GuX7RoEZs2bZrD8p9//pkBYF988YXgsfPy8nifqdRPbW0tY4yxFStWOLU/ALZv3z6btijZ98iRI7zX88c//pFNnTrVYfmBAwck7zMf119/PQsPD7dcL0EIQZaBIKalpQXLli3DlVdeie3bt+O3337D7bffDpPJhO+//97y8+mnn2LChAm8P7t27QIAy0gnLCzMLW294IILoNFoeH+eeeYZNDY2IjIyUnCbH3/8EQAwceJE1NbWWn5ef/11p9u0c+dOFBcXW37v7u7GypUrcffdd0Oj0fDuc/DgQUydOhUtLS0O6zZt2oTm5mZcffXVitqxaNEirFy5Evfddx/Ky8uVXcTvbN68GeHh4Rg+fDjq6upw1VVXITw8HKeffjp6e3txzTXXYODAgbjssstkH7O1tRU33XQTzj//fCQnJ+POO++0WW8wGPDjjz/ik08+waWXXor6+nrU19dbrEsrV67E0KFDMWLECOzatcvmx3qke+2119o809raWuj1enz//fcOy7/88kubNlx77bXo7u7m/cnIyMDSpUsF1ycmJjpc89atW8EYE/ypqakRvV+bNm3CDTfcIPsei7F582a8+eabeOCBB5CWlia5/apVq5CTk4Nhw4ZhxIgRuOyyy1BbW6tKWwjfxz1fbsKnuOaaa/DOO+9Yfn/11Vfx9NNPY//+/QgNDcXzzz8PADAajfj111+RmJiIDz/80LL9pk2bBM2aBw8exC+//IJff/0VALB3714cPXrUsn7EiBGIjY11qt1HjhzB2rVrUVhYiNWrV/OakeUyduxY7Ny5ExEREUhLS8PmzZtx5plnQqfTATCbUw8ePGizz+HDh9HX14dffvkFYWFhSElJsXGzPPnkk9i2bZtl2WOPPYYjR47guuuuw3XXXefQhqeffhoLFizA9u3bHczAAPDaa6+ht7cXcXFxvNcwcuRIHDp0iHfdFVdcga+++gpLliyBXq9XLMpMJhO0Wi1+/fVXtLa2Ii4uDuPGjcPKlStx9tlno7e3F6tWrcJXX30leawjR47gP//5D1566SVERkbi7bffxlVXXeWw3Zw5c1BRUQEAuO+++3DfffcBAF5++WVcf/31WLlyJY4dO4azzz7bYd/jx49j8ODBAICYmBiHzu7JJ5/Exo0bsW3bNpvl9vclNDQUISEhvDEnGo0GISEhvPdS6P6ef/75vMvl8MYbbyAyMhKXX36508fgOHToEK688kqceeaZWLp0qWX5N998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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "plt.figure()\n",
    "plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']  # 设置全局字体为微软雅黑，显示中文\n",
    "plt.scatter(projected_dataset_embeddings[:, 0], projected_dataset_embeddings[:, 1], s=10, color='gray')\n",
    "plt.scatter(project_augmented_queries[:, 0], project_augmented_queries[:, 1], s=150, marker='X', color='orange')\n",
    "plt.scatter(projected_result_embeddings[:, 0], projected_result_embeddings[:, 1], s=100, facecolors='none', edgecolors='g')\n",
    "plt.scatter(project_original_query[:, 0], project_original_query[:, 1], s=150, marker='X', color='r')\n",
    "\n",
    "plt.gca().set_aspect('equal', 'datalim')\n",
    "plt.title(f'{original_query}')\n",
    "plt.axis('off')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可以看到红色的`X`是我们的原始查询，橙色的`X`是嵌入增强的LLM生成的新查询，绿色的圆圈代表我们实际返回的结果。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4.3 总结"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "通过本次Expansion with generator answers和Expansion with multiple queries两个例子，使用Chroma进行检索的增强，这对于我们找到有效的信息是非常好的。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
